<!DOCTYPE html>
<html lang="en">
	<head>
		<title>HttpServer3: Features</title>
		<style>
			@import url("assets/layout.css");
		</style>
	</head>
	<body>
		<div>
			<a href="/" title="Home Page." style="display: inline-block; vertical-align: middle">
				<img loading="lazy" decoding="async" src="assets/logo.png" />
			</a>
			<h1 style="display: inline-block; vertical-align: middle">Supported Features.</h1>
		</div>
		<h2>Protocols.</h2>
		<table style="width: 60%; margin-left: 20%; margin-right: 20%">
			<tr>
				<th>Feature</th>
				<th>Supported?</th>
				<th>Since (HttpServer version)</th>
			</tr>
			<tr>
				<td>HTTP/0.9</td>
				<td>YES</td>
				<td>3.0.2</td>
			</tr>
			<tr>
				<td>HTTP/1.0</td>
				<td>YES</td>
				<td>3.0.2</td>
			</tr>
			<tr>
				<td>HTTP/1.1</td>
				<td>YES</td>
				<td>1.0</td>
			</tr>
			<tr>
				<td>HTTP/2.0</td>
				<td>NO</td>
				<td><i>Experimental support is available since 3.0.4.</i></td>
			</tr>
			<tr>
				<td>SPDY</td>
				<td>NO</td>
			</tr>
			<tr>
				<td>HTTP/3 (QUIC)</td>
				<td>NO</td>
			</tr>
		</table>
		<h2>Page Types.</h2>
		<table style="width: 60%; margin-left: 20%; margin-right: 20%">
			<tr>
				<th>Type</th>
				<th>Supported?</th>
				<th>Since (HttpServer version)</th>
			</tr>
			<tr>
				<td>Static</td>
				<td>YES</td>
				<td>1.0</td>
			</tr>
			<tr>
				<td>Dynamic</td>
				<td>YES</td>
				<td>1.0</td>
			</tr>
			<tr>
				<td>Dynamic (HttpPage2)</td>
				<td>YES</td>
				<td>2.0</td>
			</tr>
			<tr>
				<td>Dynamic (HttpPage3)</td>
				<td>YES</td>
				<td>3.0</td>
			</tr>
			<tr>
				<td>Dynamic (Asynchronous)</td>
				<td>YES</td>
				<td>3.0</td>
			</tr>
			<tr>
				<td>JavaScript-based</td>
				<td>YES</td>
				<td>
					3.0.3 <br />
					<i>This feature is experimental.</i>
				</td>
			</tr>
		</table>
		<h2>Security.</h2>
		<table style="width: 60%; margin-left: 20%; margin-right: 20%">
			<tr>
				<th>Feature</th>
				<th>Supported?</th>
				<th>Since (HttpServer version)</th>
			</tr>
			<tr>
				<td>
					TLS (legacy ciphers) <br />
					<i>NULL ciphers, MD5, anonymous suites, RC4, EXPORT ciphers</i>
				</td>
				<td>NO</td>
				<td>1.0 <-> 3.0.5</td>
			</tr>
			<tr>
				<td>
					TLS (deprecated ciphers) <br />
					<i>Triple-DES</i>
				</td>
				<td>YES</td>
				<td>1.0</td>
			</tr>
			<tr>
				<td>TLS (modern ciphers)</td>
				<td>YES</td>
				<td>1.0</td>
			</tr>
			<tr>
				<td>SSLv3</td>
				<td>NO</td>
				<td>1.0 <-> 3.0.5</td>
			</tr>
			<tr>
				<td>Rate-limiting (basic)</td>
				<td>YES</td>
				<td>2.0</td>
			</tr>
			<tr>
				<td>Header validation</td>
				<td>YES</td>
				<td>3.0.6</td>
			</tr>
			<tr>
				<td>Bounds validation</td>
				<td>PARTIALLY</td>
				<td>3.0.1</td>
			</tr>
		</table>
		<h2>Compression.</h2>
		<table style="width: 60%; margin-left: 20%; margin-right: 20%">
			<tr>
				<th>Type</th>
				<th>Supported?</th>
				<th>Since (HttpServer version)</th>
			</tr>
			<tr>
				<td>GZip</td>
				<td>YES</td>
				<td>3.0</td>
			</tr>
			<tr>
				<td>Deflate</td>
				<td>YES</td>
				<td>3.0.6</td>
			</tr>
			<tr>
				<td>Compress</td>
				<td>YES</td>
				<td>3.0.6</td>
			</tr>
			<tr>
				<td>Brotli</td>
				<td>NO</td>
			</tr>
			<tr>
				<td>Zstandard</td>
				<td>YES</td>
				<td>3.0.6</td>
			</tr>
			<tr>
				<td>Zstandard (dictionary based)</td>
				<td>NO</td>
			</tr>
		</table>
	</body>
</html>
